/*
 * 
 *方法的整理与重构
 *
 *
 */

//定义app参数名称，并加载其它模块
var authApp=angular.module('authapp', ["ngCookies",'ngFileUpload','ui.bootstrap']);

//此为定位页面所用
authApp.value('page','expert_connect');

/*controller部分*/

//定义父controller，主要用于controller之间传递信息
authApp.controller("fcontroller",function($scope,$http){
	//
	//****与分页相关的****
	//
	
	//从接口中获取总的分页数量
	$scope.$on('$getPageCountFromApi',function(event,data){
		$scope.$broadcast('$getPageCount',data);
	});
	
	//捕获分页点击事件并传递currentPage信息到主controller
	 $scope.$on('$pageAction',function(event,data){
		 $scope.$broadcast('$pageChanged',data);
	 });
})


//主要操作controller
authApp.controller("chooseSub",function($scope,$http,Upload,$timeout,$sce){
	//针对此页面需要的参数 should edit
	$scope.isShowModel=true;
	
	//**********主体方法
	//设置分页初始参数（最好与$scope.currentPage和$scope.itemsPerPage一致！！！！//这边之所以$scope.pageNumber=0是因为后台接口第一页为0）
	$scope.ifFirstTimeQuery=true;
	$scope.pageNumber=0;
	$scope.pageSize=10;
	var queryMainApi=apis.queryCurrentGroup;//！！！should edit
	$scope.queryMain=function(){
		$http({
			method:'post',
			url:queryMainApi,
			data:{'pageNumber':$scope.pageNumber,'pageSize':$scope.pageSize,'type':$scope.type01,'name':$scope.name01},//！！！should edit
		}).success(function(response){
			if(response.code=="000000"){
				$scope.queryMainApiCallBack(response);
				//将返回的pagecount和current传到上面的controller
				$scope.$emit('$getPageCountFromApi',response.data);
			}else{
				alert(response.errorMsg);
			}
		}).error(function(){
			alert("网络出现故障，请确认网络是否连接");
		})
	}
	//捕捉分页点击事件并做处理
	$scope.$on("$pageChanged",function(event,data){
		if(!$scope.ifFirstTimeQuery){//解决第一次会调用两次接口的问题
			$scope.pageNumber=data.currentPage-1;//这边之所以-1是因为后台接口第一页为0
			$scope.queryMain();
		}
		$scope.ifFirstTimeQuery=false;//改变是否是第一次调用接口的状态
	})
	$scope.queryMain();
	
	/*下面为自已编辑部分*/
	
	//调用主接口成功之后的处理方法
	$scope.queryMainApiCallBack=function(response){
		if(response.code=="000000"){
			//console.log(response.data.data);
			$scope.expertList=response.data.data;
		}else{
			alert(response.errorMsg);
		}
	}
	
	/*
	 * 
	 * 其它操作方法
	 * 
	 */
	//分配任务
	$scope.shareTasks=function(expertId){
		$scope.expertId=expertId;
		$scope.isShowModel=false;
		$scope.getAllProject(expertId);
	}
	//取消分配任务
	$scope.hideModel=function(){
		$scope.isShowModel=true;
	}
	//获取所有的测试项目
	$scope.getAllProject=function(expertId){
		$http({
			method:'get',
			url:apis.queryItem_one,
			params:{'expertId':expertId},
		}).success(function(response){
			if(response.code=="000000"){
				$scope.firstPointList=response.data;
				$http({
					method:'get',
					url:apis.queryTask,
					params:{'expertId':expertId},
				}).success(function(response){
					if(response.code=="000000"){
						$scope.mustTestList=response.data[0];
						$scope.otherTestList=response.data[1];
						$scope.chooseTestList=response.data[2];
					}else{
						alert(response.errorMsg);
					}
				}).error(function(){
					alert("网络出现故障，请确认网络是否连接");
				})
			}else{
				alert(response.errorMsg);
			}
		}).error(function(){
			alert("网络出现故障，请确认网络是否连接");
		})
	}
	//点击checkbox
	$scope.updateSelection = function($event,arraylist){
        var checkbox = $event.target ;
        var checked = checkbox.checked ; 
        if(checked){  
        	arraylist.flag="1";  
        }else{
        	arraylist.flag="0"; 
        }
    }
	//确认分配任务
	$scope.shareTaskSure=function(){
		//一级指标
		var fzb=$scope.arrayToString($scope.firstPointList);
		//专业技能必测
		var zyjnbc=$scope.arrayToString($scope.mustTestList);
		//专业技能选测
		var zyjnxc=$scope.arrayToString($scope.chooseTestList);
		//其它任务
		var qtrw=$scope.arrayToString($scope.otherTestList);
		//console.log(fzb+"a"+zyjnbc+"b"+zyjnxc+"c"+qtrw);
	
		$http({
			method:'post',
			url:apis.divideWork,
			data:{'tasks_0':fzb,'tasks_1':zyjnbc,'tasks_2':zyjnxc,'tasks_3':qtrw,'expertId':$scope.expertId},
		}).success(function(response){
			if(response.code=="000000"){
				alert("分配成功");
				$scope.isShowModel=true;
			}else{
				alert(response.errorMsg);
			}
		}).error(function(){
			alert("网络出现故障，请确认网络是否连接");
		})
	}
	//数组用，拼接
	$scope.arrayToString=function(array){
		var arrayStr="";
		angular.forEach(array,function(array,index,data){
			if(array.flag=="1"){
				arrayStr+=array.pid+",";
			}
		})
		return arrayStr
	}
})

//分页controller
authApp.controller('pageDemo',function($scope){
	//定义分页的初始参数（不改动，不会影响功能）
	$scope.currentPage=1;
	$scope.itemsPerPage=10;
	$scope.maxSize = 8;
	//需要接口返回的一些参数，如pagecount
	$scope.$on('$getPageCount',function(event,data){
        $scope.totalItems = parseInt(data.recordCount);
        $scope.bigTotalItems =parseInt(data.recordCount);      
	});
	//分页点击的触发事件
	 $scope.$watch('currentPage', function() {
		 var pagedata={currentPage:$scope.currentPage};
		 $scope.$emit('$pageAction',pagedata);
	  });
})